package com.hgkj.common.core.utils;

import com.hgkj.common.core.exception.ServiceException;
import org.springframework.util.ObjectUtils;


/**
 * 断言快速抛出异常
 */
public class AssertExceptionUtils {

    /**
     * 不能为空断言
     *
     * @param o       检测值
     * @param message 失败消息
     */
    public static void notNull(Object o, String message) {
        if (ObjectUtils.isEmpty(o)) {
            throw new ServiceException(message);
        }
    }

    /**
     * 必须为空断言
     *
     * @param o       检测值
     * @param message 失败消息
     */
    public static void mustNull(Object o, String message) {
        if (!ObjectUtils.isEmpty(o)) {
            throw new ServiceException(message);
        }
    }

    /**
     * 必须相等比较
     *
     * @param source  源
     * @param o       现
     * @param message 失败消息
     */
    public static void mustEquals(Object source, Object o, String message) {
        if (source == null && o == null) {
            throw new ServiceException(message);
        }
        if (source == null || o == null) {
            return;
        }
        if (!source.equals(o)) {
            throw new ServiceException(message);
        }
    }

    /**
     * 不能为false
     *
     * @param flag    boolean
     * @param message 失败消息
     */
    public static void notFalse(boolean flag, String message) {
        if (!flag) {
            throw new ServiceException(message);
        }
    }
}
